package dataBase;

import java.util.HashMap;
import java.util.ArrayList;

/**
 * 数据库接口
 */
public interface DataBase {
    /**
     * 新增方法
     * @param collectionName    集合名
     * @param data  数据
     * @return  数据Id
     */
    public abstract String create(String collectionName, Object data);

    /**
     * 批量新增方法
     * @param collectionName    集合名
     * @param dataList  数据列表
     * @return  数据Id集合
     */
    public abstract ArrayList<String> batchCreate(String collectionName, ArrayList<Object> dataList);

    /**
     * 删除方法
     * @param collectionName    集合名
     * @param where 查询条件
     * @return  删除记录条数
     */
    public abstract Number delete(String collectionName, ArrayList<HashMap<String, Object>> where);

    /**
     * 批量删除方法
     * @param collectionName    集合名
     * @param where 查询条件
     * @return  删除记录条数
     */
    public abstract Number batchDelete(String collectionName, ArrayList<HashMap<String, Object>> where);

    /**
     * 更新方法
     * @param collectionName    集合名
     * @param where 查询条件
     * @param data  数据
     * @return  更新记录条数
     */
    public abstract Number update(String collectionName, ArrayList<HashMap<String, Object>> where, Object data);

    /**
     * 批量更新方法
     * @param collectionName    集合名
     * @param where 查询条件
     * @param data  数据
     * @return  更新记录条数
     */
    public abstract Number batchUpdate(String collectionName, ArrayList<HashMap<String, Object>> where, Object data);

    /**
     * 查询方法
     * @param collectionName    集合名
     * @param where 查询条件
     * @return  查询数据
     */
    public abstract Object getItem(String collectionName, ArrayList<HashMap<String, Object>> where);

    /**
     * 查询列表方法
     * @param collectionName    集合名
     * @param where 查询条件
     * @return  查询数据
     */
    public abstract HashMap<String, Object> getRecords(String collectionName, ArrayList<HashMap<String, Object>> where);
}